/*
课后作业：
建立一个工程实现多个页面的跳转,传值,回传值
 */

import 'package:flutter/material.dart';

void main() {
//  通过这个函数 把组件显示在屏幕上去
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return MaterialApp(
      home: ResOnepage(),//注册路由
      routes: <String,WidgetBuilder>{
        '/one':(BuildContext context)=>ResOnepage(),
        '/two':(BuildContext context)=>ResTwopage(),
      },
        initialRoute:'/one',//声明启动页面
      // home:new OnePage(),//新建路由
      // home:new CreatePage(),
      // Scaffold(
      //   //   Appbar設計导航
      //   appBar: AppBar(
      //     title: Text('标题'),
      //   ),
      //   //  body设计页面内容
      //   body: Center(
      //     child: Text('Hello Flutter',
      //         style: TextStyle(
      //             fontSize: 25.0,
      //             color: Colors.red,
      //             fontWeight: FontWeight.bold)),
      //   ),
      // ),
    );
  }
}

//注册路由
class ResOnepage extends StatefulWidget {
  @override
  _ResOnepageState createState() => _ResOnepageState();
}

class _ResOnepageState extends State<ResOnepage> {
  @override
  String params='暂无参数';
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('注册路由第一个页面'),
      ),
      body: Padding(
        padding: EdgeInsets.all(30.0),
        child: RaisedButton(
          child: Text('接受返回参数：$params'),
            onPressed: () {
              Navigator.pushNamed(context, '/two',arguments: 'onePage参数').then((value) {
                //value表示回退携带的参数
                print(value);
                setState(() {
                  params=value;
                });
              });
            },
        ),
      ),
    );
  }
}
class ResTwopage extends StatefulWidget {
  @override
  _ResTwopageState createState() => _ResTwopageState();
}

class _ResTwopageState extends State<ResTwopage> {
  @override
  Widget build(BuildContext context) {
    //获取路由参数
    var arg=ModalRoute.of(context).settings.arguments ?? '沒有';
    return Scaffold(
      appBar: AppBar(
        title: Text('注册路由第二个页面'),
      ),
      body: Padding(
        padding: EdgeInsets.all(30.0),//EdgeInsets   上下左右各添加16像素距离
        child: RaisedButton(
          child: Text('接受第一个页面参数：${arg}'),
          onPressed: (){
            Navigator.of(context).pop('twoPage参数');
          },
        ),
      ),
    );
  }
}
/*以下内容自主练习 忽略*/


/*
学习内容：
flutter基本组件之MaterialApp,Scaffold,Navigator,事件处理
  Widget根组件：是所有组件的基类，所有组件都继承自它
  MaterialApp顶层组件：常用属性home（主页），title（标题），color（颜色），theme（主题），routes（路由）。。。
  scaffold基础布局组件：常用属性appBar（显示界面顶部），body（界面主要内容Widget），Drawer（抽屉菜单控件）。。。
  Navigator对路由Route进行管理:新建路由，注册路由
  跳转使用Navigator.pushNamed(context, '/two')，Navigator.push跳转  返回使用Navigator.push，Navigator.of(context).pop();
  替换路由pushReplacementNamed

学习目标：
掌握基本页面的构成跳转导航
 */
//新建路由
// class OnePage extends StatefulWidget {
//   @override
//   _OnePageState createState() => _OnePageState();
// }
//
// class _OnePageState extends State<OnePage> {
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       appBar: AppBar(
//         title: Text('onepage'),
//       ),
//       body: Padding(
//         padding: EdgeInsets.all(30.0),
//         child: RaisedButton(
//             child: Text('跳转到第二页'),
//             onPressed: (){
//               Navigator.push(context, MaterialPageRoute(builder: (builder)=>TwoPage()));
//             }),
//       ),
//     );
//   }
// }
// class TwoPage extends StatefulWidget {
//   @override
//   _TwoPageState createState() => _TwoPageState();
// }

// class _TwoPageState extends State<TwoPage> {
//   @override
//   Widget build(BuildContext context) {
//     return Scaffold(
//       appBar: AppBar(
//         title: Text('two page'),
//       ),
//       body: Padding(
//         padding: EdgeInsets.all(30.0),
//         child: RaisedButton(
//           child: Text('回到上个页面'),
//           onPressed: (){
//             Navigator.pop(context);
//           },
//         ),
//       ),
//     );
//   }
// }
// class CreatePage extends StatefulWidget {
//   @override
//   _CreatePageState createState() => _CreatePageState();
// }
//
// class _CreatePageState extends State<CreatePage> {
//   @override
//   Widget build(BuildContext context) {
//       return new Scaffold(
//         appBar: new AppBar(
//           title: Text('Ttile'),
//         ),
//         body: Center(
//           child: Text('Home'),
//         ),
//       );
//   }
// }
